• 検索結果がありません。

GRACE TR 2015 07 テクニカルレポート | GRACEセンター

N/A
N/A
Protected

Academic year: 2018

シェア "GRACE TR 2015 07 テクニカルレポート | GRACEセンター"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

ISSN 1884-0760

GRACE TECHNICAL REPORTS

Qualitative Analysis for Multiple Adaptation

Loops

Kenji Tei

Ryuichi Takahashi

Nicolas D’Ippolito

Hiroyuki Nakagawa

Shinichi Honiden

GRACE-TR 2015–07 June 2015

CENTER FOR GLOBAL RESEARCH IN

(2)
(3)

Qualitative Analysis for Multiple Adaptation Loops

Kenji Tei†, Ryuichi Takahashi‡, Nicolas D’Ippolito⋆

Hiroyuki Nakagawa⋄, Shinichi Honiden†

† National Institute of Informatics, Japan ‡Waseda University, Japan

Universidad de Buenos Aires, Argentina

⋄ Osaka University, Japan

June 26, 2015

Abstract

Using multiple adaptation loops enlarges the adaptation space of self-adaptive systems, but poses an adaptation chain problem. Adap-tation loops are triggered not only by changes in the environment but also by changes caused by other adaptation loops. The chain of adap-tations should be analyzed to validate specifications of these loops early in the development cycle of self-adaptive systems. In this pa-per, we focus on qualitative analysis of multiple adaptation loops to validate their specifications. Our analysis explores all possible adap-tation chains and checks whether their loops are possible to lead the qualities of the managed system to the desired levels. To this end, we devise a process for constructing behavior models of adaptation loops and the managed system, and a tool for automatically transforming the behavior models into a formal model used for model checking with a reachability property. We present case studies based on extended Znn.com to validate the results of our qualitative analysis. Further-more, we also evaluate the scalability of the analysis and show that it can be completed within a reasonable amount of time.

1

Introduction

(4)

aim for guaranteeing desired levels for expected quality attributes (e.g. re-sponse time, availability, user experience). Design of adaptive systems based on adaptation loops has shown to be a promising approach to equip systems with self-adaptive capabilities. Adaptation loops typically follow a monitor-analize-plan-execute (MAPE [12]) strategy that requires the managed sys-tem to provide an interface to observe its state and act over it by changing behavior or configuration. Thus, the managed system must provide an adap-tation interface.

In order to achieve its goals, complex software systems require the coor-dination of multiple adaptation loops that monitor and modify the managed system as it is required. To support these changes, modern software systems support a wide range of configuration options and provide one or more varia-tion points and adaptavaria-tion interfaces corresponding to these points. Recent studies[11, 5, 16, 24] have investigated the use of multiple adaptation loops for controlling variation points, as shown in Figure 1, in order to explore a wide adaptation space and to control different quality attributes. For example, Kephart et al. [11] introduced multiple adaptation loops in web application to control performance and energy consumption, and Ledoux et al. [5] also introduced them in cloud systems to manage the infrastructure of the IaaS layer and applications on the SaaS layer.

managed

system

!

AI! AI! AI! AI! adaptation loops

adaptation interfaces

Figure 1: Self-adaptive system with multiple adaptation loops

Despite their advantage, it is not easy to construct a correct specification for multiple adaptation loops. Unlike a single loop, multiple loops pose an

adaptation chainproblem. Here, an adaptation loop is triggered not only by

(5)

not allow concurrent execution of adaptation loops. Oliverira et al. [5] pro-posed a coordination and synchronization protocol for adaptation loops in cloud systems in order to improve the synergy between the loops in different layers, but this could not handle the adaptation chain problem.

This issue is not new and it has been studied in the control theory domain. However, the analysis is restricted to specific combination or hi-erarchies of control loops, failing to provide general approaches to combine control loops while guaranteeing their stability and convergence. We, on the other hand, propose an approach to model, analyze and verify the correct-ness of the specification.

We believe that model checking-based qualitative analysis is a promising and effective approach for reasoning about correctness of adaptation loops at runtime. It has been applied to self-adaptive systems, but most of the studies aimed to guarantee the behavior of the managed system [26, 27]. A few studies have attempted to apply qualitative analysis to adaptation loops [10, 15]. Iftikhar and Weyns proposed ActivFORMS[10]. The Activ-FORMS enables qualitative analysis of single adaptation loops by modeling the behavior of the loop and the managed system as timed automata, and assures the deadlock freedom. However, it does not consider adaptation chains. Luckey and Engels [15] pointed out the adaptation chain problem and proposed a qualitative analysis for multiple adaptation loops. They model multiple adaptation loops and the managed system by using UML-based notation, and transform them into a labeled transition system (LTS) that reflects the state space of the adaptation chain. The qualitative analy-sis uses an LTS with a stability property to assure that the adaptations do not occur infinitely. However, this analysis can not determine whether or not the adaptation chains will lead the system to a desirable or undesirable state.

In this paper, we present an approach for development-time analysis of multiple adaptation loops based on qualitative analysis. Our analysis checks the reachability property to see if the given multiple adaptation loops are unable to maintain the qualities of the system at the desired levels, in a qual-itative way. Intuitively, the analysis clarifies undesirable situations of the adaptation loops. Model checking exhaustively explores all possible adapta-tion chains leading from the current state of the managed system and checks whether at least one chain can reach states where the quality attributes are at the desired levels. If the model checking fails, it is guaranteed that the adaptation loops will never reach the desired quality levels from the current situation.

(6)

In-stead, we construct the state machines from the view point of the qualities. The contributions of this paper are twofold. First, we propose a pro-cedure for constructing these models. Our propro-cedure guides developers in

making the two kinds of state machines by using manipulation variables,

which represent configuration options of the managed system, and

con-trolled variables, which represent the quality attributes of it. Second, we offer a tool that supports the transformation of the model into a formal model. We use NuSMV [3], which is a model checking tool for computation tree logic (CTL), for the qualitative analysis. The tool automates transfor-mation of the state machines into a NuSMV model, to be used by NuSMV model checker that reports the results of its analysis. It allows developers to perform the qualitative analysis without having to know the details of the model checking.

The rest of the paper is organized as follows. Section 2 explains a mo-tivating example, and Section 3 explains our procedure and tool. Section 4 presents the case studies and experimental results obtained from them, and Section 5 discusses the applicability and limitations of our analysis. Section 6 describes related work. Finally, Section 7 concludes the paper and outlines future work.

2

Motivating Example

The motivating example is a web application providing a news service. The

example is based onZnn.com[2], which is a well-known exemplar in research

on self-adaptive software [16, 23]. The Znn.com imitates a news Web

ser-vice, likecnn.com, consisting of a set of client processes that make stateless

content requests to one of the servers, a server pool that manages a set of replicated application servers, a load balancer that balances requests across the server pool, a database server, and a server monitor that periodically checks the current status of the application servers (Figure 2). The

impor-tant quality attributes of the system are theresponse time,server load, and

quality of content (QoC). The web application may face unexpected

per-formance degradations caused by hardware failures or sudden increases in requests from users, but it should maintain these attributes at the desired levels.

(7)

client! load balancer

(Apache)! server 2

(Apache)! server monitor

(Nagios)!

database

(mySQL)!

managed system …

server pool management

content provisioning management compression rate

management

transfer speed management

server 1

(Apache)!

Adaptation loops

Adaptation interfaces

Components in managed system Legend

AL1! AL2! AL3! AL4!

Figure 2: System architecture of a web application with multiple adaptation loops

adaptation loops for some of the adaptation interfaces (gray rectangles in Figure 2) to maintain the quality attributes at the desired levels.

The adaptation loops may cause adaptation chains. For example, the adaptation loop for compression rate management will switch the rate from low to high when the response time gets worse. The change aims to control the response time, but it requires additional computations for the compres-sion and consequently, it has a negative effect on the server load. Therefore, the change may trigger the adaptation loop for server pool management, which maintains the server load, and a change by the loop for server load management, in turn, may trigger the other loops.

3

Qualitative analysis for multiple adaptation loops

Generally speaking, software specificationsS should satisfy requirementsR

within the context of the given environment E[25].

S, E |=R

Here we think about qualitative analysis of multiple adaptation loops. S

corresponds to the specifications of the adaptation loops, E corresponds to

the qualities of the managed system, andR corresponds to the reachability

property about states of the managed system. We provide a procedure for

constructing models of S and E as state machines and a model

(8)

Requirement Analysis Managed System Analysis Managed System Design & Imp.

Adaptation Loops Analysis

Adaptation Loops Design & Imp.

adaptation interface specification quality requirements! adaptation loops specification

managed system development adaptation loops development

formal guarantee!

Figure 3: Scope of our work

Construct S

serverLoad = low! serverLoad =

high! increment increment decrement decrement increment

decrement poolSize = max! poolSize = notMax! monitor [serverLoad=high] /increment monitor [serverLoad=low] /decrement monitor [serverLoad=high] /increment poolSize = max! poolSize = notMax! monitor [serverLoad=high] /increment monitor [serverLoad=low] /decrement monitor [serverLoad=high] /increment

state machines of S (specification of adaptation loops) poolSize = max! poolSize = notMax! monitor [serverLoad=high] /increment monitor [serverLoad=low] /decrement monitor [serverLoad=high] /increment serverLoad = low! serverLoad =

high! increment increment decrement decrement increment

decrement

state machines of E (description of qualities of the managed system) Construct E

Adaptation Loops Analysis

quality requirements! adaptation interface specification Identify CVs and MVs NuSMV model! formal guarantee! CVs (controlled variables) MVs (manipulation variables) Translation

Tool Model Checker NuSMV

assumed environment

R

(desired quality levels)

Figure 4: Process of adaptation loop analysis

3.1 Overview

Figure 3 outlines the scope of our work. Our focus is adaptation loops

analysis phase to create specifications of adaptation loops based on

qual-itative analysis. We assume that the quality requirements to be achieved by self-adaptation has been determined in the requirement analysis phase. Besides, we also assume that available and valid configuration options of the managed system have been determined and specifications of adaptation in-terfaces have been constructed in the managed system analysis phase. Our process outputs the specifications of adaptation loops together with formal guarantees.

(9)

S and E as state machines by following the procedure described in Section 3.2. Then, they use the transformation tool described in Section 3.3 to generate a NuSMV model from the state machines and desired quality levels. Finally, they use the NuSMV model checker to perform qualitative analysis to obtain formal guarantee, as described in Section 3.4. Note that they do not need to know the details of the NuSMV model. Instead, they only need to know whether the model checking fails or not for each possible current state of the managed system.

3.2 Constructing S and E

Let us show how developers can constructSandE as state machines whose

interactions represent adaptation chains. We use controlled variables and

manipulation variables [20] to model S and E.

3.2.1 Identifying controlled variables and manipulation variables

The process starts by identifying the controlled variables and manipulation variables by analyzing the specifications of the adaptation interfaces. The controlled variables represent values that the adaptation loops are intended to control. These correspond to quality attributes of the managed system and can be identified from monitoring operations in the adaptation inter-faces. In addition, the controlled variables are used for specifying the desired levels that satisfy the quality requirements.

The manipulation variables represent values that can be changed by the adaptation loops. These correspond to configuration options of the managed system, which can be parameter-based configurations or architectural con-figurations. Developers model configuration options of the managed system, which have been determined in the managed system analysis phase, as

ma-nipulation variables. They also identifyactions to change the manipulation

variables by analyzing the effector operations.

We define the controlled variables and the manipulation variables as dis-crete variables. When a quality attribute or a parameter for a configuration takes real values, we discretize them by setting a threshold determined by analyzing the desired level of the quality attribute or range of the parame-ter. By using these discrete variables, we model the system and adaptation loops as state machines.

Example There are four adaptation interfaces in the news service

illus-trated in Figure 2. Here, three controlled variables (serverLoad,responseT ime,

QoC) were identified as shown in Table 1 Then, the desired quality levels are

specified as (serverLoad=low∧responseT ime=f ast∧QoC =high) by

(10)

Table 1: Controlled variables (CVs), manipulation variables (MVs) and actions in the news service

serverLoad {low, notLow}

CVs responseT ime {f ast, notF ast}

QoC {high, notHigh}

poolSize {max, notM ax}

cRate {f ast, slow}

MVs tSpeed {high, low}

contentT ype {M M, text}

forpoolSize {increment, decrement}

forcRate {switchT oHigh, switchT oLow}

actions fortSpeed {switchT oF ast, switchT oSlow}

forcontentT ype {switchT oM M, switchT oT ext}

identified. Note that poolSize and transf erSpeed represent

parameter-based configurations that can be mapped to parameters in the managed

system, and cRate and contentT ype do that of architectural configuration

that can be mapped to predefined configurations of components and con-nectors in the managed system.

3.2.2 Constructing E

The state machines for qualities (E) represent how the quality attributes

are affected by the configuration changes.

Model of E E is modeled as a set of state machines referred as to SMqa.

An SMqa is constructed for each controlled variable. Specifically, SMqa is

a tuple of< Scv, Tqa >, whereScv is the set of states of controlled variables

and Tqa represents the set of state transitions representing effects on the

controlled variables. Tai is a tuple of < ss, st, e >. ss ∈ Scv and st ∈ Scv

respectively represent the source and target states of the transitions. e ∈

Actionai represents an event triggering a transition, where Actionai is a set

of actions available at adaptation interfaces which might affect the controlled variable.

Steps for constructing E E is constructed by repeating the following steps (Figure 5) for each controlled variable.

Step 1: Describe state space of the quality attribute

Developers describe the state space of the quality attribute as a set of

states (Smv) ofSMqa. It is defined with a relevant controlled variable

(11)

Step 2: Describe effects of configuration changes

Developers describe all possible effects of the configuration changes on the quality attributes. The effects are defined as state transitions of the controlled variable, which are caused by actions that adjust the manipulation variables. A quality attribute might be affected by actions of different adaptation interfaces. Developers select actions

relevant to the controlled variable from all actions and defineActionai.

Developers also analyze the possible effects for each action inActionai

and describe transitions as Tqa. Note that the effects are often

un-certain at development time. An action may or may not trigger the state transitions of a quality attribute. In this case, developers model the both possibilities. The uncertain effects are modeled as nondeter-ministic transitions. Developers should model all possible effects of actions.

Step 1 Describe state

space of quality attribute

!

Step 2 Describe effects

of configuration changes

!

scv = state-c1!

scv = state-c2!

scv = state-c1!

scv = state-c2!

scv = state-c1!

scv = state-c2! Attribute1

scv = state-c1!

scv = state-c2! a1 a2 a1 a1 a2 a2 a3 a

3

scv = state-c1!

scv = state-c2! a1 a2 a1 a1 a2 a2

a3 a 3

scv = state-c1!

scv = state-c2! a1 a2 a1 a1 a2 a2

a3 a 3 Attribute1

Figure 5: Steps in constructing SMqa

Example In the case of the news service, three SMqas are constructed,

which correspond toserverLoad,responseT ime, andQoC. The left part of

Figure 6 outlinesSMqaforserverLoad. It has two states (serverLoad=low

and serverLoad = notLow). serverLoad is relevant to the actions

config-uring the server pool (increment and decrement) and the actions

config-uring the compression rate (switchT oHigh and switchT oLow). Therefore,

the possible effects of these actions on serverLoad are specified as state

transitions. For example, the state cannot be changed by incrementwhen

serverLoad is low, because adding servers to the pool will not increase

(12)

changed by increment when serverLoad is notLow. It is uncertain at de-velopment time. Therefore, the both are specified as non-deterministic state transitions.

poolSize = max!

poolSize = notMax!

monitor

[serverLoad=notLow] /increment monitor

[serverLoad=low] /decrement

monitor

[serverLoad=notLow] /increment

serverLoad = low!

serverLoad = notLow!

increment increment decrement

decrement increment

decrement

SMcl

SMqa for serverLoad for AL1

switchToHigh

switchToHigh switchToHigh switchToLow

switchToLow

switchToLow

Figure 6: Part ofSMal and SMqa for the news service

3.2.3 Constructing S

The state machines represent how the adaptation loops (S) change the

con-figurations of the managed system.

Model of S S is the set of state machinesSMal. AnSMal is constructed

for each adaptation loop. Specifically, SMal is a finite state modeled as a

tuple of< Smv, Tal >, where Smv is the set of states of manipulation

vari-ables andTalis the set of state transitions. Talis a tuple of< ss, st, e, g, a >.

ss ∈ Smv and st ∈ Smv correspond to the source and target states of the

transition. e∈ {monitoring}represents an event triggering the transitions.

An adaptation loop is only triggered by periodically monitoring the managed

system, and is represented asmonitoring. g ∈Guardsal and a∈Actionsai

represent a guard and an action of the transition. Guardsal is the set of

guards of the transitions, which are specified with controlled variables.

Steps for constructing S S is constructed by repeating the following steps (Figure 7) for each adaptation loops.

Step 1: Describe state space of the configuration

Developers describe the state space of the configuration that

adapta-tion loop changes. The set of states (Smv) ofSMal is defined with a

(13)

Step 2: Specify behavior of the adaptation loop

Developers specify when and how the adaptation loop should change

the configuration, as Tal. They specify triggering conditions of the

adaptation loop with the controlled variables, and actions to be

per-formed by it to change configurations. State transitions inSMaloccur

as a result of the actions. They also specify possible changes of

ma-nipulation variables by the actions, as Tal. Note that the triggering

conditions are key to model adaptation chains. An SMal can affect

SMqas by taking an action, and the changes in theSMqas in turn may

be matched to triggering conditions of otherSMals.

smv = state-m1!

smv = state-m2!

Step 1 Describe state

space of configuration!

smv = state-m1!

smv = state-m2!

smv = state-m1!

smv = state-m2!

smv = state-m1!

smv = state-m2! AL1

smv = state-m1!

smv = state-m2!

monitor [g1(scv)]/a1 monitor [g2(scv)]/a2

monitor

[g3(scv)]/a3 CA1

smv = state-m1!

smv = state-m2!

monitor [g1(scv)]/a1 monitor [g2(scv)]/a2

monitor

[g3(scv)]/a3 CA1

smv = state-m1!

smv = state-m2!

monitor [g1(scv)]/a1 monitor [g2(scv)]/a2

monitor

[g3(scv)]/a3 CA1

smv = state-m1!

smv = state-m2!

monitor [g1(scv)]/a1 monitor [g2(scv)]/a2

monitor

[g3(scv)]/a3 AL1

Step 2 Specify behavior

of adaptation loop!

Figure 7: Steps in constructing SMal

Example In the case of the news service, fiveSMals are constructed, and

they correspond to adaptation loops (AL1,AL2,AL3, andAL4). The right

part of Figure 6 outlinesSMal representingAL1. A manipulation variable

relevant toAL1ispoolSize, whose states can bemax ornotMax. In response

to the monitoring event,AL1 takes thedecrementaction when thepoolSize

is max and serverLoad is low. Moreover, AL1 takes the increment action

when poolSize isnotMax and serverLoad is notLow. Thedecrement action

occasionally causes a state transition from notMax to max. It depends on

the current value of the manipulation variable, but it has been abstracted away at development time.

3.3 Transforming S and E into a NuSMV model

Let us show how NuSMV models are generated fromS andE. The NuSMV

(14)

CTL specifications. The transformation tool generates a NuSMV model

from the set of theSMqas and the set of the SMals. The transformation is

performed as follows.

Step 1: State variable definitions

State variables in the NuSMV model, which are used to specify prop-erties, correspond to controlled variables. The state definitions of the controlled variables are mapped to the state variable definitions. Note that the initial states of the controlled variables will be substituted later.

Step 2: CTL specification

Here, the EF property is used to check reachability, which is written

as EF(< desiredqualitylevels >) in the CTL specification. The

de-sired quality level specified with the controlled variables is mapped to this. If there exists a path beginning at the initial state such that < desiredqualitylevels >holds at the current state or at some future state, it becomes true.

Step 3: State machine definitions

SMals inS and SMqas inE are mapped to state machines definitions

in the NuSMV model. Figure 8 shows the details of the state machine

definitions in the template. SMqa is transformed into a state machine

in the NuSMV model, whereas the limitations of the NuSMV language

result in one SMal being transformed into two state machines: one

for the state transitions of the manipulation variables, the other for actions corresponding to the transitions. Note that the initial states of the manipulation variables will be substituted later.

We implemented a prototype of the transformation tool in Eclipse 1

.

Figure 9 shows a screenshot of the tool. We used the Papyrus2

UML edi-tor to construct the state machines. We implemented the model-to-model

transformation rules in the ATL3

. The ATL engine outputs an XMI-based NuSMV model by following the rules. We also implemented the

model-to-text transformation rules in the Acceleo language4

. The Acceleo engine outputs a text-based NuSMV model.

Example We constructed a NuSMV model for the news service of which

AL1,AL3, andAL4 are shown in Figure 2. AL1 tries to controlserverLoad

by adjusting poolSize, AL3 tries to control responseT ime by adjusting

1

Source code of the prototype is available at https://github.com/kiyo07/ UMLStateMachine2NuSMV

2

Papyrus : http://www.eclipse.org/papyrus/

3

ATL :https://eclipse.org/atl/

4

(15)

MODULE <SMac>(<scv>, <action>) VAR

--- Manipulation variables --- <smv>:{<state-m1>, <state-m2>,…}; …

ASSIGN

--- Selection of action to be executed next(<action>):=

case

<smv=state-m1> & <scv=state-c1> : <a2>; …

TRUE: none; esac;

--- State transitions of manipulation variables init(<smv>):= <current state of smv>; next(<smv>):=

case

<smv=state-m1> & <action=a2> : <state-m2>; …

TRUE:<smv>; esac;

smv = state-m1!

smv = state-m2!

monitor [g1(scv)]/a1

monitor [g2(scv)]/a2

monitor [g3(scv)]/a3

SMac

MODULE <SMqa>(<scv>,<action>) ASSIGN

--- Expected effect on the controlled variable next(<scv>):=

case

<scv = state-c1> & <action=a1> : <state-c1>;

<scv = state-c1> & <action=a2> : {<state-c1>, <state-c2>; …

TRUE:<scv>; esac;

scv = state-c1!

scv = state-c2! a1 a2 a1 a1 a2 a2

a3 a 3

SMqa

SMal

Figure 8: Details of the state machine definition part in the NuSMV tem-plate

tSpeed, andAL4 tries to control QoC by adjusting contentT ype. We used

the transformation engine to generate a NuSMV model from the models. Figure 10 overviews the NuSMV model highlighting parts corresponding to

the state machines in Figure 65

.

3.4 Performing qualitative analysis

Let us show how developer performs the qualitative analysis from the gen-erated NuSMV model. The gengen-erated NuSMV model is used for model checking. The model checker explores the adaptation chains caused by the adaptation loops from the initial states, and checks the reachability property specified in CTL.

Note that results of the qualitative analysis depends on the initial states

of E and S. The initial states of E correspond to current states of the

5

Complete NuSMV models are available at http://research.nii.ac.jp/~tei/

(16)

Figure 9: Prototype of the transformation tool in Eclipse

controlled variables, and those of S correspond to current states of the ma-nipulation variables. Developers assume a situation and input states of con-trolled variables and manipulation variables for the situation in the NuSMV models and perform model checking.

If the model checking fails, it is guaranteed that the adaptation loops will never satisfy quality requirements from the assumed situation. They repeat the model checking for all possible situations. In so doing, they identify sets of states for which the model checking fails. These sets represent situations where the given adaptation loops never work.

Scope of this paper is qualitative analysis at development time, but de-velopers have several strategies of how to cope with the situations. One of the strategies might be to prepare different sets of adaptation loops at development time, and to switch adaptation loops to another set where qual-itative analysis succeeds, at runtime. The situations identified by qualqual-itative analysis at development time can be used as triggering conditions to adapt adaptation loops at runtime.

Example Here, we think qualitative analysis of the adaptation loops (AL1,

AL3,AL4). We assume a situation where theserverLoad, theresponseTime,

and the QoC are set to fast, notFast, and high respectively, andpoolSize,

tSpeed and contentT ype are respectively notM ax, highand M M. In this

situation, the property,serverLoad=low∧responseT ime=f ast∧QoC=

high, does not hold at the time, but the model checking successes. This

means that the given adaptation loops are possible to lead these qualities to the desired levels in a future by performing an adaptation or an

adap-tation chain. Actually, there is still a possibility that AL3 may improve

(17)

Let us think of a situation wheretSpeed, which is the manipulation

vari-able ofAL3, has been changed tofast, but theresponseTime is still notFast.

The model checking for the situation fails. This is becauseAL3can no longer

improveresponseTime. Developers can thus know that the adaptation loops

are not appropriate for the situation.

In the situation, developers can prepare different adaptation loops such

as (AL1, AL2, AL4). Here, model checking of (AL1, AL2, AL4) successes

for the situation. The loops can be used instead of (AL1,AL3,AL4) for the

situation.

Note that all model checking that we performed here were completed within 20 ms.

4

Evaluation

This section presents evaluations of the qualitative analysis for multiple adaptation loops. The evaluations answered the following research ques-tions:

RQ1 Are the formal guarantees also valid at the implementation of the

self-adaptive systems?

RQ2 How scalable is the model checking for complicated self-adaptive

sys-tems?

4.1 Validation

RQ1 is about a gap between specification and implementation. Our quali-tative analysis provides formal guarantees at the specification level, but it is not clear how valid it is at the implementation level. To answer RQ1, we compared the results of the analysis with data obtained from experiments.

4.1.1 Experimental setup : news service

We used the news service scenario for the case studies. The managed system of the news service was developed with the Znn.com package that includes Apache httpd-2.4.2 as the HTTP server and a load balancer, MySQL 5.5.25 as the database server, and Nagios 3.4.1 as the server monitoring tool, as illustrated in Figure 2. The managed system has four adaptation interfaces

to get current values of the controlled variables (responseTime, serverLoad

and QoC)6

and and to execute actions on the managed variables (poolSize,

6

State spaces of the controlled variables were modeled as follows. TheresponseTime

was recognized asfastwhen the average response time of the most recent 30 requests was shorter than 3 s, and it was otherwisenotFast. The serverLoad was recognized as low

when the load average monitored was less than 1, and it was otherwisenotLow. TheQoC

was recognized ashighwhen the multimedia news was provided, and it was recognized as

(18)

Table 2: Results of model checking (development-time results) correspond-ing to the situations in the experiments. (S:Success, F:Fail)

at 60 s 120 s 180 s 240 s 300 s 360 s

multiple S S F F S S

single(AL1) F F F F F F

single(AL2) S S F F S F

single(AL4) S S F F F F

cRate, tSpeed and contentType). Developer can construct all or some of

adaptation loops, (AL1,AL2,AL3 and AL4), which work on the interfaces.

At development time, we constructed specifications of the adaptation loops by following the process shown in Section 3.2. Then we performed qualitative analysis with the specifications for all possible initial states of manipulation variables and controlled variables, and identified a set of situ-ations where qualitative analysis fails.

We also implemented adaptation loops on the top of the Znn.com pack-age, in accordance with the specification. For example, Figure 11 overviews

the implementation of AL1 for the server pool management point, which

is written in C#. It has if-then rules to select an action (incrementing or decrementing the number of servers in the pool) to control the server load, in accordance with the specification shown in Figure 6. All adaptation loops worked every 30 seconds.

We executed the implemented news service system and measured the server load, the response time, and the QoC. Then, we compared the exper-imental data with the results of qualitative analysis obtained at development time to validate the qualitative analysis.

4.1.2 Results : single and multiple adaptation loops

Here, we prepared four self-adaptive systems. Three of them are self-adaptive

systems with a single adaptation loop (AL1 managing pool size,AL2

man-aging compression rate, or AL4 managing type of content), and the other

one is a self-adaptive system with multiple adaptation loops (AL1,AL2, and

AL4). We executed them in an environment where user traffic changed at

runtime.

The (1-a), (1-b) and (1-c) in Figure 12 show the experimental results

of the server load, the response time, and the QoC7

, respectively. We also measured states of the controlled variables and manipulation variables at 60, 120, 180, 240, and 300 s. In order to compare the experimental results with results of the qualitative analysis, we extracted results of model checking

7

(19)

corresponding to the situations from the results we have achieved at devel-opment time. Table 2 shows the corresponding results of model checking.

For the first 120 s, the user traffic was 5 requests per second. Table 2

shows that model checking of AL1 failed. Experimental results also show

that AL1 (the blue lines) could not maintain the response time and the

server load at the desired levels. Table 2 also shows that model checking of the others succeeded, and the experimental results show that they could actually lead the qualities at the desired level.

From 120 s to 240 s, the user traffic increased to 7. Then results of model checking changed due to the changes in the environment. All model checking failed. The experimental results show that the all adaptation loops actually never lead the qualities at the desired levels until 240 s.

After 240 s, the user traffic was back to 5. At 300 s and 360 s, the model checking of the multiple loops succeeded again. Experimental results of the multiple loops (the red lines) actually could maintain all the qualities. It might be curious that the model checking succeeded again although it had failed at 120 s. This change was caused not by adaptation loops but by changes in the environment (by reducing the user traffic). At 120 s, model checking could not consider the change of the user traffic, because we do not model changes caused by factors except for adaptation loops. The model

checking ofAL2 also succeeded at 300 s. The server load ofAL2 (the green

lines) exceeded the threshold at the 300 s, but it had possibilities to lead the server load to the desired level by changing the compression rate. It actually

tried this by performingswitchToLow action, but it could not speed up the

response time enough. Then model checking for the situations after 300 s

failed, and the experimental results also show that AL2 actually could not

do that.

In summary, the formal guarantees were actually valid in the experi-ments. If the system is in a situation where model checking fails, the adap-tation loops could not maintain all the quality attributes at the desired levels after that unless the environment changes due to factors except for the adaptation loops.

4.1.3 Results : static and adaptive multiple loops

As we discussed in Section 3.4, if the model checking fails, developers can prepare other sets of control loops for the situations. In the experiments, we

prepared two kinds of self-adaptive systems, referred as to static adaptive

that uses a set of adaptation loops anddynamic adaptive that switches a set

of adaptation loops at runtime in accordance with results of the qualitative analysis. We compared their experimental results with the results of the qualitative analysis with them.

(20)

Table 3: Results of model checking (development-time results) correspond-ing to the situations in the experiments. (S:Success, F:Fail)

situation 60 s 120 s 180 s 240 s 300 s 360 s

static adaptive S S S S F F

dynamic adaptive S S S S S S

gradually increased up to 5. In addition, threshold of the response time was 1 s. (2-a) and (2-b) in Figure 13 plot the response times and server loads

for this scenario, respectively 8

. Table 3 shows results of model checking corresponding to situations at 60, 120, 180, 240, 300, and 360 s.

Model checking for the static adaptive system with (AL1, AL3, AL4)

succeeded until 240 s, The red lines show that it actually could maintain the

qualities until 240 s. At 240 s,loadAverage had changed tonotLow, but the

model checking succeeded. The experimental results ofloadAverage had

ac-tually changed to low after that as a result of an adaptation chain performed

by the loops. At 300 s,responseTime had changed to notFast. The model

checking failed this time. and the load average actually increased sharply. Until 360 s, the results of model checking were valid in the experimental results. It might be curious that the load average sharply dropped after 360 s. This was caused not by the adaptation loops, but by other factors in the environment. At the time, success rate of user requests dropped from 100 % to 50 % due to timeout, and this reduced the load average and the response time.

Model checking for the dynamic adaptive system, which initially used

(AL1,AL3,AL4) until 300 s and used (AL1,AL2,AL4) after that, succeeded

all the time by switching adaptation loops by following the results of the qualitative analysis. The blue lines show that experimental results were almost same with the static one until 300 s, and it could maintain all the qualities after that by switching adaptation loops. Note that the success rate was always 100 % in the dynamic adaptive system.

4.2 Scalability

RQ2 is about scalability. Multiple adaptation loops enlarge adaptation space, but will require more time for the qualitative analysis. Although our approach enables state space of each state machine to be small by abstrac-tion based on the controlled variables and manipulaabstrac-tion variables, the qual-itative analysis should analyze parallel composition of all state machines. We evaluated scalability by measuring execution time for the qualitative

8

(21)

analysis.

First we evaluated scalability for the number of controlled variables. The left graph in Figure 14 shows execution times of three cases (10, 20, and 30 adaptation loops where each loop affects one controlled variable) by chang-ing the number of controlled variables from 5 to 30. Model checkchang-ing for the 10 and 20 loops were completed within 0.2 and 150 seconds, respec-tively. These are reasonable time for qualitative analysis at development time. Model checking for the 20 loops exponentially increased up to 20 con-trolled variables, but after that it slowly increased. This is because the 20 adaptation loops can control with up to 20 controlled variables. As same with the 20 loops, the results for the 10 loops slowly increased after 10 controlled variables. Model checking for the 30 loops also increased expo-nentially, and was completed in reasonable time up to 22 controlled variables (457 seconds). However, it took 3 hours for 23 controlled variables and more than 24 hours for 24.

Next we evaluated scalability for the number of adaptation loops. The right graph in Figure 14 shows execution times of three cases (10, 20, and 30 controlled variables) by changing the number of adaptation loops from 5 to 30. The results were almost same with the previous one. Model checking for the 10 and 20 controlled variables can be completed within reasonable time. That for the 30 controlled variables are reasonable up to 22 loops.

5

Discussion

Validation of qualitative analysis Section 4.1 showed that our quali-tative analysis was valid in the situations in the experiments until changes caused by other factors occur, such as sudden increases in requests from users. This is because that we model all possible effects of configuration changes on the qualities as non-deterministic transitions, but do not model the changes that spontaneously occurred, which are usually unknown at the analysis phase. Developers can identify situations where given adapta-tion loops will not satisfy quality requirements by the qualitative analysis, and can prepare other sets of loops that are valid in the situations to keep maintaining quality attributes, as shown in Section 4.1.3.

However, developers should carefully model all possible changes in E

as non-deterministic transitions, but they might miss to model some neces-sary changes or include unnecesneces-sary changes that are not occurred at run-time. The inconsistency will result in incorrect results of qualitative analysis.

Sykes et al. [21] proposed a learning technique to reviseE to keep the

(22)

Scalability Scalability tests in Section 4.2 showed our qualitative anal-ysis can be completed in reasonable time up to totally 50 state machines consisting of adaptation loops and controlled variables. Although real com-plex systems have several hundreds configuration options [4] internally, only a small part of the configuration options is controlled by adaptation loops in actual. Similarly, although many quality attributes exist in complicated system, only a small part of them are relevant to quality requirements of the system and are used as controlled variables. Actually, self-adaptive systems used in existing studies [11, 5, 16, 24, 1] equips just less than 10 adaptation loops, and controls less than 10 quality attributes. Our qualitative analysis can be practically used for these applications.

Applicability Our qualitative analysis does not depend on the specific architecture of the managed systems as long as they provide adaptation interfaces. Therefore, our analysis can be applied to managed systems which provide adaptation interfaces on different layers, such as cloud systems that provide adaptation interfaces for the IaaS layer and SaaS layer, and mobile systems that provide interfaces for hardware layer and application layer.

Our analysis models the adaptation loops by using manipulation vari-ables that can represent parameterized configurations (e.g. the number of pools) and architectural configurations (e.g. type of content). Specifications of the adaptation loops can also be naturally implemented as a program consisting of a set of if-then rules by using thresholds as shown in Figure 11. The way of implementation based on if-then rules is actually simpler than other ways such as machine learning-based implementation, but it is

pop-ularly supported by practical adaptable systems. For example, autoscaling

used in Amazon EC2 provides the way of implementation with the if-then rules to configure the number of virtual machines.

6

Related work

There have been many existing studies on making formal verifications on managed systems. Zhang et al. [26, 27] used Petri nets to represent the behavior of a managed system, and used model checking to analyze them for their safety and liveness properties. Sykes et al. used model checking with a reachability property to find plans to change architectural configuration of the managed system [22]. Filieri et al. [8] devised a runtime-efficient probabilistic model checking by dividing the model checking in two steps, one performed at development time, the other at runtime, to improve the runtime performance of the analysis. However, they did not intend to check correctness of adaptation loops.

(23)

sys-tem and an adaptation loop by using timed automata. ActiveFORMS used Uppaal model checker to verify reachability or liveness properties specified in timed computational tree logic (TCTL). It provides a virtual machines of adaptation loops that assure that the properties verified at development time are guaranteed at runtime. However, ActiveFORMS does not treat multiple adaptation loops causing the adaptation chains. In addition, it has not been tested on medium or large systems, and it might not scale well for complicated systems exposing many adaptation interfaces because it models the detailed behaviors of the managed system. Luckey et al. [15] targeted multiple adaptation loops and proposed a UML-based language called ACML for modeling adaptation loops. Models specified by ACML are transformed into labelled transition systems that are used to check sta-bility of the adaptation loops and if they have any dead locks. However, their study focused on termination and deadlock, not on reachability. In this paper, we focused on qualitative analysis of multiple adaptation loops with a reachability property.

As another approach to assuring the qualities of the system is to use quantitative analysis with techniques used in control science [19, 13, 6, 7, 14]. This approach uses closed formulas to model the managed system and adap-tation loops and control theory to guarantee the system and adapadap-tation loops mathematically. However, it is not easy to model software systems, which are usually non-linear, in terms of closed formulas. There are some studies on mitigating the difficulties in modeling a system as closed formula. Filieri et al. [9] proposed a generalized method that can automatically construct an approximate model of a system and synthesize suitable adaptation loops for managing its non-functional requirements. They modeled a software sys-tem as a linear model whose coefficients can be automatically determined by ARPE [17], which is based on linear regression, with a dataset obtained by testing a set of sampled values of a manipulation variable and measuring the effect on the quality attributes of the system. An appropriate adapta-tion loop for the system can be synthesized from the model by using the Z-transformation. Klein et al. [14] proposed a similar methodology. They modeled a cloud application as a linear model with disturbances. However, these methodologies can only handle one manipulation variable and one controlled variable whereas our method can handle multiple manipulation variables and controlled variables.

(24)

studies dealt with changes that occur offline, such as evolution of the man-aged systems. In addition, whereas they dealt with functional errors, we deal with deterioration in the qualities of the system.

7

Conclusion

We described qualitative analysis for multiple adaptation loops. We model the managed system and adaptation loops as state machines interacting each others, by using the controlled variables and the manipulation vari-ables. The case study showed that the results of our analysis are valid at the implementation unless spontaneous changes in the environment occur and that the analysis can complete within reasonable time up to 50 state machines consisting of adaptation loops and controlled variables. We also developed a process and tools to help developers to construct models.

We plan to automate the adaptation of adaptation loops in the future. Currently, we rely on developers to adapt the loops in accordance with the results of the qualitative analysis. In the future, we will study runtime adaptation of adaptation loops with the model checker.

References

[1] K. Angelopoulos, V. E. S. Souza, and J. Mylopoulos. Dealing with

multiple failures in zanshin: a control-theoretic approach. In SEAMS

2014: Proceedings of the 9th International Symposium on Software En-gineering for Adaptive and Self-Managing Systems. ACM Request Per-missions, June 2014.

[2] S.-W. Cheng, D. Garlan, and B. Schmerl. Evaluating the effectiveness

of the Rainbow self-adaptive system. In ICSE Workshop on Software

Engineering for Adaptive and Self-Managing Systems, pages 132–141, 2009.

[3] A. Cimatti, E. Clarke, F. Giunchiglia, and M. Roveri. Nusmv: a new

symbolic model checker. International Journal on Software Tools for

Technology Transfer, 2(4):410–425, 2000.

[4] M. B. Cohen, M. B. Dwyer, and J. Shi. Constructing Interaction Test Suites for Highly-Configurable Systems in the Presence of Constraints:

A Greedy Approach. IEEE Transactions on Software Engineering,,

34(5):633–650, 2008.

[5] F. A. de Oliveira, T. Ledoux, and R. Sharrock. A Framework for the Coordination of Multiple Autonomic Managers in Cloud

Environ-ments. In IEEE 7th International Conference on Self-Adaptive and

(25)

[6] X. Dutreilh, N. Rivierre, A. Moreau, J. Malenfant, and I. Truck. From

data center resource allocation to control theory and back. In Cloud

Computing (CLOUD), 2010 IEEE 3rd International Conference on, pages 410–417, July 2010.

[7] A. Filieri, C. Ghezzi, A. Leva, and M. Maggio. Self-adaptive software meets control theory: A preliminary approach supporting reliability

requirements. In Automated Software Engineering (ASE), 2011 26th

IEEE/ACM International Conference on, pages 283–292. IEEE, 2011.

[8] A. Filieri, C. Ghezzi, and G. Tamburrelli. Run-time efficient

probabilis-tic model checking. In ICSE ’11: Proceeding of the 33rd International

Conference on Software Engineering. ACM Request Permissions, May 2011.

[9] A. Filieri, H. Hoffmann, and M. Maggio. Automated design of

self-adaptive software with control-theoretical formal guarantees. In ICSE

2014: Proceedings of the 36th International Conference on Software Engineering, pages 299–310. ACM Request Permissions, May 2014.

[10] M. U. Iftikhar and D. Weyns. Activforms: Active formal models for

self-adaptation. In Proceedings of the 9th International Symposium on

Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2014, pages 125–134, New York, NY, USA, 2014. ACM.

[11] J. O. Kephart, H. Chan, R. Das, D. W. Levine, G. Tesauro, F. Raw-son, and C. Lefurgy. Coordinating Multiple Autonomic Managers to

Achieve Specified Power-Performance Tradeoffs. In Autonomic

Com-puting, 2007. ICAC ’07. Fourth International Conference on, pages 24–24. IEEE, 2007.

[12] J. O. Kephart and D. M. Chess. The vision of autonomic computing. Computer, 36(1):41–50, 2003.

[13] M. Kihl, A. Robertsson, M. Andersson, and B. Wittenmark. Control-theoretic analysis of admission control mechanisms for web server

sys-tems. World Wide Web, 11(1):93–116, 2008.

[14] C. Klein, M. Maggio, K.-E. ˚Arz´en, and F. Hern´andez-Rodriguez.

Brownout: building more robust cloud applications. In ICSE 2014:

Proceedings of the 36th International Conference on Software Engineer-ing, pages 700–711. ACM Request Permissions, May 2014.

[15] M. Luckey and G. Engels. High-quality specification of self-adaptive

software systems. InProceedings of the 8th International Symposium on

(26)

[16] M. Luckey, B. Nagel, C. Gerth, and G. Engels. Adapt cases: extending

use cases for adaptive systems. In SEAMS ’11: Proceedings of the

6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM Request Permissions, May 2011.

[17] M. Maggio and H. Hoffmann. Arpe: A tool to build equation models

of computing systems. In Presented as part of the 8th International

Workshop on Feedback Computing, Berkeley, CA, 2013. USENIX.

[18] S. Nadi, T. Berger, C. K¨astner, and K. Czarnecki. Mining configuration

constraints: static analyses and empirical results. In ICSE 2014:

Pro-ceedings of the 36th International Conference on Software Engineering, pages 140–151. ACM Request Permissions, May 2014.

[19] T. Patikirikorala, A. Colman, J. Han, and L. Wang. A systematic survey on the design of self-adaptive software systems using control

engineering approaches. InProceedings of the 7th International

Sympo-sium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’12, pages 33–42, 2012.

[20] M. Shaw. Beyond objects: A software design paradigm based on process

control. SIGSOFT Softw. Eng. Notes, 20(1):27–38, Jan. 1995.

[21] D. Sykes, D. Corapi, J. Magee, J. Kramer, A. Russo, and K. Inoue.

Learning revised models for planning in adaptive systems. In Software

Engineering (ICSE), 2013 35th International Conference on, pages 63– 71. IEEE, 2013.

[22] D. Sykes, W. Heaven, J. Magee, and J. Kramer. From goals to

compo-nents: A combined approach to self-management. InProceedings of the

2008 International Workshop on Software Engineering for Adaptive and Self-managing Systems, SEAMS ’08, pages 1–8, New York, NY, USA, 2008. ACM.

[23] G. Tamura, N. M. Villegas, H. A. M¨uller, L. Duchien, and L. Seinturier.

Improving context-awareness in self-adaptation using the dynamico

ref-erence model. In Proceedings of the 8th International Symposium on

Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’13, pages 153–162. IEEE Press, 2013.

[24] T. Vogel and H. Giese. Model-driven engineering of self-adaptive

soft-ware with eurema. ACM Trans. Auton. Adapt. Syst., 8(4):18:1–18:33,

Jan. 2014.

(27)

[26] J. Zhang and B. H. C. Cheng. Model-based development of dynamically

adaptive software. In ICSE ’06: Proceedings of the 28th international

conference on Software engineering, pages 371–380, New York, New York, USA, May 2006. ACM Request Permissions.

[27] J. Zhang, H. J. Goldsby, and B. H. C. Cheng. Modular verification

of dynamically adaptive systems. In AOSD ’09: Proceedings of the

8th ACM international conference on Aspect-oriented software devel-opment, pages 161–172, New York, New York, USA, Mar. 2009. ACM Request Permissions.

[28] S. Zhang and M. D. Ernst. Automated diagnosis of software

configura-tion errors. In Software Engineering (ICSE), 2013 35th International

Conference on, pages 312–321. IEEE Press, 2013.

[29] S. Zhang and M. D. Ernst. Which configuration option should I change?

In ICSE 2014: Proceedings of the 36th International Conference on

(28)

MODULE main VAR

--- Controlled variables --- serverLoad:{low, notLow}; responseTime:{fast, notFast}; QoC:{high, notHigh}; --- some definitions --- --- ...

ASSIGN

--- Current values of controlled variables init(serverLoad) := low;

init(responseTime) := notFast; init(QoC) := high;

---- some initializations of actions --- ...

-- The desired level of the quality attributes

SPEC EF(serverLoad=low & responseTime=fast & QoC=high);

--- SMqa for serverLoad

MODULE severLoadSM(serverLoad,actionEVP1,actionEVP2) ASSIGN

next(serverLoad):= case

serverLoad=notLow & actionEVP1=decrement : {low,notLow}; serverLoad=notLow & actionEVP1=increment : notLow; serverLoad=low & actionEVP1=decrement : low;

serverLoad=low & actionEVP1=increment : {low,notLow};

serverLoad=notLow & actionEVP2=switchToLow : {low,notLow}; serverLoad=notLow & actionEVP2=switchToHigh : notLow; serverLoad=low & actionEVP2=switchToLow : low;

serverLoad=low & actionEVP2=switchToHigh : {low,notLow}; TRUE: serverLoad;

esac;

--- SMqas for other attributes are here --- ... Cu rr en t v al ue s of th e co nt ro lle d va ria bl es

SM

qa

for serverLoad

SM al for AL1

-- SMal for AL1

MODULE AL1(serverLoad,action) VAR

poolSize:{max,notMax}; -- Manipulation variable ASSIGN

-- Current state of manipulation variable init(poolSize):= notMax;

next(poolSize):= case

poolSize=notMax & action=increment : {max, notMax}; poolSize=max & action=increment : max;

poolSize=notMax & action=decrement : notMax; poolSize=max & action=decrement: notMax; TRUE:poolSize;

esac; next(action):= case

poolSize=max & serverLoad=notHigh : decrement; poolSize=max & serverLoad=high : none;

(29)

Namespace NewsService {

public class ServerPoolManager { // some declarations here // …

private static int maxPool = 10; private static double threshold = 1.0;

// some methods here // …

private void selectAction() { // get average of CPU loads

double load = getAverageOfCPULoads();

// rules for this adaptation component if(load > threshold){

if(getServers().Length < maxPool) incrementServer();

} else {

if(getServers().Length > 0) decrementServer(); } } } }

(30)

!" #!" $!" %!" &'!" &(!" &)!" '&!" '*!" '+!" #!!" ##!" #$!"

!"

#

!

$%&'()*!

,-./01"2"34*"567"86.91.9"9:;1" <=0>"2"34&?34'?34*"

@-/@!

06A!

(1-a) response time

(1-b) server load

!"

#" $!" $#" %!" %#" &!" &#" '!" '#" #!"

!" &!" (!" )!" $%!" $#!" $*!" %$!" %'!" %+!" &!!" &&!" &(!"

!"#

$

%#

&

'

(#

)

'

!

*+'%,-.! ,-./01"2"34'"567"86.91.9"9:;1"

,-./01"2"34%"567"86<;71,,-6."7=91"

,-./01"2"34$"567",17>17";660"

<?0@"2"34$A34%A34'" !"

#" $!" $#" %!" %#" &!" &#" '!" '#"

!" &!" (!" )!" $%!" $#!" $*!" %$!" %'!" %+!" &!!" &&!" &(!"

!"

#$

%

&

#"

'(

)

"

'*

#+

!

()"'*#+!

,-./01"2"34'"567"86.91.9"9:;1" ,-./01"2"34%"567"86<;71,,-6."7=91" ,-./01"2"34$"567",17>17";660" <?0@"2"34$A34%A34'"

(1-c) QoC

(31)

!"#$%&'$(! !)*"#$%&'$(! *"#$%&'$(! +, -. "-/ $ #-0 $ ! 1"#$%&'$(! 2" 2)3" 2)!" 2)4" 2)5" 6" 6)3" 6)!" 6)4"

2" 42" 632" 652" 3!2" 122" 142" !32"

'7-8("-.-98/$" .:;-<=("-.-98/$"

8<$">'?!

.:;-<=("-.-98/$" '@=7(A$."7A$"+,,9'"

!"#$%&'$(! !)*"#$%&'$(! *"#$%&'$(!

+,$"-'.! #$ '/ 0 1 '$ "+ , $ "-'.

! 2"#$%&'$(! 3415,6("535/+7$" '869(:$3"9:$";00/'" <" =<" ><" 2<" !<" *<" ?<" @<" A<" B<" =<<"

<" ?<" =><" =A<" >!<" 2<<" 2?<" !><"

'95+("535/+7$" 3415,6("535/+7$"

(2-a) response time

(2-b) server load

Figure 13: Response time and server load for the static and dynamic adap-tive system

# of controlled variables

execution time (s

)

# of adaptation loops

execution time (s

) !" #!!" $!!" %!!" &!!" '!!"

!" '" #!" #'" $!" $'" %!" #!"())*+" $!"())*+" %!"())*+" !" #!!" $!!" %!!" &!!" '!!"

!" '" #!" #'" $!" $'" %!"

#!"()*"

$!"()*"

%!"()*"

Figure 1: Self-adaptive system with multiple adaptation loops Despite their advantage, it is not easy to construct a correct specification for multiple adaptation loops
Figure 2: System architecture of a web application with multiple adaptation loops
Figure 3: Scope of our work
Table 1: Controlled variables (CVs), manipulation variables (MVs) and actions in the news service
+7

参照

関連したドキュメント

pole placement, condition number, perturbation theory, Jordan form, explicit formulas, Cauchy matrix, Vandermonde matrix, stabilization, feedback gain, distance to

In particular, we consider a reverse Lee decomposition for the deformation gra- dient and we choose an appropriate state space in which one of the variables, characterizing the

Inside this class, we identify a new subclass of Liouvillian integrable systems, under suitable conditions such Liouvillian integrable systems can have at most one limit cycle, and

Then it follows immediately from a suitable version of “Hensel’s Lemma” [cf., e.g., the argument of [4], Lemma 2.1] that S may be obtained, as the notation suggests, as the m A

In the case of the KdV equation, the τ -function is a matrix element for the action of the loop group of GL 2 on one-component fermionic Fock space, see for instance [10, 20, 26]..

In order to be able to apply the Cartan–K¨ ahler theorem to prove existence of solutions in the real-analytic category, one needs a stronger result than Proposition 2.3; one needs

This paper presents an investigation into the mechanics of this specific problem and develops an analytical approach that accounts for the effects of geometrical and material data on

While conducting an experiment regarding fetal move- ments as a result of Pulsed Wave Doppler (PWD) ultrasound, [8] we encountered the severe artifacts in the acquired image2.